/*
 * Light.h
 *
 *  Created on: 2012/07/05
 *      Author: Weihe
 */

#ifndef LIGHT_H_
#define LIGHT_H_

#include "geom.h"


namespace glex {

class Light {
public:
	Vector4f position, direction;
	Color4f specular, diffuse, ambient;
	float spotExponent, spotCutoff;
	float constantAttenuation, linearAttenuation, quadraticAttenuation;
	Light() :
			position(Vector4f::ZEROS), direction(Vector4f::Z_AXIS), specular(
					Color4f::BLACK), diffuse(Color4f::WHITE), ambient(
					Color4f::BLACK), spotExponent(0), spotCutoff(180), constantAttenuation(
					1), linearAttenuation(0), quadraticAttenuation(0) {
	}

	void setupLight(int lightId);
};

} /* namespace glex */
#endif /* LIGHT_H_ */
